package com.app.web.user.info;

import com.app.base.BaseDao;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @description 用户信息数据访问类
 * @author liuyang
 * @date 2019-05-07
 */
public interface UserInfoDao extends BaseDao {
	/**
	 * 功能：根据用户id查询用户信息
	 * @param userId 用户id
	 * @return
	 */
	UserInfo infoByUserId(@Param("userId") long userId);

	/**
	 * 功能：根据推荐码查询用户信息
	 * @param mcode 推荐码
	 * @return
	 */
	UserInfo infoByMcode(@Param("mcode") int mcode);

	/**
	 * 功能：根据openid查询用户信息
	 * @param openid 推荐码
	 * @return
	 */
	UserInfo infoByOpenid(String openid);

	/**
	 * 功能：添加用户信息
	 * @param userInfo 用户信息
	 * @return
	 */
	int addInfo(UserInfo userInfo);

	/**
	 * 功能:获取用户推荐码
	 */
	int getMcode();

	/**
	 * 功能：用户升级
	 * @return
	 */
	int userUpLevel(@Param("role") int role,@Param("uid") long uid);

	/**
	 * 保存用户小程序码
	 * @param map uid type appId imgName
	 * @return
	 */
	void saveUserShareImg(Map map);

	/**
	 * 获取用户小程序码
	 * @param map uid type appId
	 * @return
	 */
	String getUserShareImg(Map map);


	/**
	 * 获取用户当前账户信息
	 * @param uid
	 */
	Map<String,Object> getUserMoney(int uid);


	/**
	 * 添加用户金额记录
	 */
	void addMoneyDetail(@Param("bonusList") List<Map<String, Object>> bonusList);


	/**
	 * 添加用户拉新奖励可提现金额
	 * @param bonusList
	 */
	void addMoney(@Param("bonusList")List<Map<String, Object>> bonusList);


}
